package 数据结构.链表;

public class BM14链表的奇偶重排 {
    public ListNode oddEvenList (ListNode head) {
        // write code here
        //如果链表为空，不用重排
        if(head == null)
            return head;
        ListNode even = head.next;
        ListNode odd = head;
        ListNode evenhead = even;
        while(even != null && even.next != null){
            //odd连接even的后一个，即奇数位
            odd.next = even.next;
            //odd进入后一个奇数位
            odd = odd.next;
            //even连接后一个奇数的后一位，即偶数位
            even.next = odd.next;
            //even进入后一个偶数位
            even = even.next;
        }
        odd.next = evenhead;
        return head;
    }
}
